package com.ldcc.report_system.api;

import com.ldcc.report_system.api.param.DayReportParam;
import com.ldcc.report_system.api.results.DayReportResult;
import com.ldcc.report_system.api.results.PageResult;
import com.ldcc.report_system.util.http.ServerResponse;

import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import rx.Observable;

/**
 * @author wwg
 * @description 日报接口
 */
public interface DayReportApi {

    /**
     * 添加日报
     *
     * @param param 日报实体
     */
    @POST("/report/day/")
    Observable<ServerResponse<Object>> save(@Body DayReportParam param);

    /**
     * 根据 id 查询日报
     *
     * @param id 主键
     * @return 日报信息
     */
    @GET("/report/day/{id}")
    Observable<ServerResponse<DayReportResult>> getById(@Path("id") String id);

    /**
     * @param currentPage 当前页
     * @return 日报列表
     * @description 查询日报分页列表
     */
    @GET("/report/day/page/{currentPage}")
    Observable<ServerResponse<PageResult<DayReportResult>>> get(@Path("currentPage") long currentPage);

    /**
     * @param dayReport 修改参数
     */
    @PUT("/report/day")
    Observable<ServerResponse<Object>> update(@Body DayReportParam dayReport);

    @DELETE("/report/day/{id}")
    Observable<ServerResponse<Object>> remove(@Path("id") String id);


}
